
namespace Crux.Core.Domains;
/// <summary>
/// IEventMappingsFactory
/// </summary>
public interface IEventMappingsFactory
{
    /// <summary>
    ///
    /// </summary>
    /// <param name="eventDataType"></param>
    /// <param name="eventHandlerType"></param>
    void Save(RuntimeTypeHandle eventDataType, RuntimeTypeHandle eventHandlerType);
    /// <summary>
    ///
    /// </summary>
    /// <param name="eventDataType"></param>
    /// <param name="eventHandleTypes"></param>
    void Save(RuntimeTypeHandle eventDataType, IEnumerable<RuntimeTypeHandle> eventHandleTypes);
    /// <summary>
    ///
    /// </summary>
    /// <param name="eventDataType"></param>
    /// <param name="eventHandlerType"></param>
    void Remove(RuntimeTypeHandle eventDataType, out IEnumerable<RuntimeTypeHandle> eventHandlerType);
    /// <summary>
    ///
    /// </summary>
    /// <param name="eventDateType"></param>
    /// <returns></returns>
    IEnumerable<RuntimeTypeHandle> Get(RuntimeTypeHandle eventDateType);
}